home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dircache.py < prev    next >
Text File  |  2009-11-02  |  1KB  |  42 lines

  1. """Read and cache directory listings.
  2.  
  3. The listdir() routine returns a sorted list of the files in a directory,
  4. using a cache to avoid reading the directory more often than necessary.
  5. The annotate() routine appends slashes to directories."""
  6. from warnings import warnpy3k
  7. warnpy3k("the dircache module has been removed in Python 3.0", stacklevel=2)
  8. del warnpy3k
  9.  
  10. import os
  11.  
  12. __all__ = ["listdir", "opendir", "annotate", "reset"]
  13.  
  14. cache = {}
  15.  
  16. def reset():
  17.     """Reset the cache completely."""
  18.     global cache
  19.     cache = {}
  20.  
  21. def listdir(path):
  22.     """List directory contents, using cache."""
  23.     try:
  24.         cached_mtime, list = cache[path]
  25.         del cache[path]
  26.     except KeyError:
  27.         cached_mtime, list = -1, []
  28.     mtime = os.stat(path).st_mtime
  29.     if mtime != cached_mtime:
  30.         list = os.listdir(path)
  31.         list.sort()
  32.     cache[path] = mtime, list
  33.     return list
  34.  
  35. opendir = listdir # XXX backward compatibility
  36.  
  37. def annotate(head, list):
  38.     """Add '/' suffixes to directories."""
  39.     for i in range(len(list)):
  40.         if os.path.isdir(os.path.join(head, list[i])):
  41.             list[i] = list[i] + '/'
  42.